<?php

/*
 * Modelo: "datos_via.php"
 * Copyright 2011 SISVOX.
 *
 * Licenciado bajo SISVOX, Version 1.0 (la "Licencia");
 * El codigo presente que compone este Software es propiedad unica y
 * exclusivamente de SISVOX, por lo tanto, usted no podr� utilizar este
 * archivo excepto en cumplimiento de la Licencia ofrecida por SISVOX.
 * Usted puede obtener una copia de la Licencia en:
 *
 *      Soluciones Integrales de Software Vox (SISVOX)
 *                 http://www.sisvox.com
 *
 *     - Carlos Calvo      <ccalvo@sisvox.com>
 *     - Andres Hernandez  <ahernandez@sisvox.com>
 *
 * A menos que sea requerido por la ley aplicable o se acuerde por escrito,
 * el software distribuido bajo la licencia se distribuye "TAL CUAL", CON
 * LAS GARANTIAS Y CONDICIONES expresadas en la "Licencia".
 */


@include_once('enlaceBD.php');
@include_once('auto_pre.php');
@include_once("helper.php");

class Datos_via {
	
    /* Nombre de las Variables del Modelo (INFORMATIVO)
	
	*/

    // Variable para los resultados de las Consultas
    private $respuesta;

	// Tablas del Modelo
    private $tsmat_datos_via 		= "smat_datos_via";
	
	private $tsmat_ambie_via 		= "smat_ambie_via";
	private $tsmat_canal_via 		= "smat_canal_via";
	private $tsmat_condi_cli 		= "smat_condi_cli";
	private $tsmat_estad_via 		= "smat_estad_via";
	private $tsmat_geome_via 		= "smat_geome_via";
	private $tsmat_ilumi_via 		= "smat_ilumi_via";
	private $tsmat_mater_via 		= "smat_mater_via";
	private $tsmat_obsta_via 		= "smat_obsta_via";
	private $tsmat_orien_via 		= "smat_orien_via";
	private $tsmat_resid_via 		= "smat_resid_via";
	
	
    // =================================================================================================================
    //	FUNCION - INSERTAR LOS DATOS DE UNA INFRACCIÓN
    // =================================================================================================================
	
    public function insertar_datos_inf( $id_motivo, $fecha, $hora, $id_tipo_ide_inf, $nro_ide_inf, $nombre_infractor, $grado_lic, $id_condi_per, $sexo, $fecha_nacimiento, $domicilio, $cod_tel, $nro_tel, $cod_cel, $nro_cel, $correo, $vehiculo, $placa, $serial_carroceria, $marca, $modelo, $color, $anyo, $tipo, $uso, $geolocalizacion, $coord_x, $coord_y, $id_estado, $id_municipio, $id_parroquia, $id_sector, $id_tipo_via, $referencia, $remolque, $id_tipo_ide_ope, $nro_ide_ope, $nombre_operador, $placa_grua, $id_estacionamiento, $id_tipo_ide_fun, $nro_ide_fun, $login_registro, $importe, $observaciones )
    {
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Agregar la Infracción (Problemas en la Conexión): ".$conexion->getLastMessage();
			$this->retorno[2] = "-1";
            return $this->retorno;
        }
        else
        {
            $fmt_fecha_inf	= $conexion->darFormatoFecha($fecha);
			$fmt_hora_inf	= $conexion->darFormatoHora($hora);
			$fmt_fecha_nac	= $conexion->darFormatoFecha($fecha_nacimiento);
			$fecha_actual 	= $conexion->getSQLTimeStamp();
			
			$fmt_fecha_nac_edad	= $conexion->darFormatoFechaEdad($fecha_nacimiento);
			
			$edad = calcular_edad( $fmt_fecha_nac_edad );
			
			$sql = "insert into ".$_SESSION['db_smit_WS'].$_SESSION['schema_db_WS'].".$this->tsmit_datos_inf ( id_motivo, id_status, fecha, hora, id_tipo_ide_inf, nro_ide_inf, nombre_infractor, grado_lic, id_condi_per, sexo, edad, fecha_nacimiento, domicilio, cod_tel, nro_tel, cod_cel, nro_cel, correo, vehiculo, placa, serial_carroceria, marca, modelo, color, anyo, tipo, uso, geolocalizacion, coord_x, coord_y, id_estado, id_municipio, id_parroquia, id_sector, id_tipo_via, referencia, remolque, id_tipo_ide_ope, nro_ide_ope, nombre_operador, placa_grua, id_estacionamiento, id_tipo_ide_fun, nro_ide_fun, login_registro, fecha_registro, importe, observaciones )
             		values ( $id_motivo, 1, $fmt_fecha_inf, $fmt_hora_inf, '$id_tipo_ide_inf', '$nro_ide_inf', '$nombre_infractor', '$grado_lic', $id_condi_per, '$sexo', $edad, $fmt_fecha_nac, '$domicilio', '$cod_tel', '$nro_tel', '$cod_cel', '$nro_cel', '$correo', ";
			
            $sql .= "'$vehiculo', ";
			
			if ( $vehiculo == "SI" ) {	
				$sql .= "'$placa', '$serial_carroceria', '$marca', '$modelo', '$color', '$anyo', '$tipo', '$uso', ";
			} else if ( $vehiculo == "NO" ) {
				$sql .= "null, null, null, null, null, null, null, null, ";
			}
			
			$sql .= "'$geolocalizacion', ";
			
			if ( $geolocalizacion == "SI" ) {
				$sql .= "'$coord_x', '$coord_y', ";
			} else if ( $geolocalizacion == "NO" ) {
				$sql .= "null, null, ";
			}
			
			$sql .= "'$id_estado', '$id_municipio', ";
			
			if ( $id_parroquia != "" ) {
				$sql .= "'$id_parroquia', ";
			} else {
				$sql .= "null, ";
			}
			if ( $id_sector != "" ) {
				$sql .= "'$id_sector', ";
			} else {
				$sql .= "null, ";
			}
			
			$sql .= "$id_tipo_via, ";
			
			if ( $referencia != "" ) {
				$sql .= "'$referencia', ";
			} else {
				$sql .= "null, ";
			}
			
			$sql .= "'$remolque', ";
			
			if ( $remolque == "SI" ) {
				$sql .= "'$id_tipo_ide_ope', '$nro_ide_ope', '$nombre_operador', '$placa_grua', $id_estacionamiento, ";
			} else if ( $remolque == "NO" ) {
				$sql .= "null, null, null, null, null, ";
			}
			
			$sql .= "'$id_tipo_ide_fun', '$nro_ide_fun', '$login_registro', $fecha_actual, $importe, ";
			
			if ( $observaciones != "" ) {
				$sql .= "'$observaciones')";
			} else {
				$sql .= "null)";
			}
			
			$this->respuesta = $conexion->consultar($sql);
			
            $temparray = $conexion->buscarFilasAfectadas();
			
            if($temparray == 0)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Agregar la Infracción: ".$conexion->getLastMessage();
				$this->retorno[2] = "-1";
            }
            else
            {
            	$id = $conexion->buscarUltimoInsertID();
				
                $this->retorno[0] = "S";
                $this->retorno[1] = "La Infracción se ha Agregado con Exito con el ID: ".$id;
				$this->retorno[2] = $id;
            }
			
			$conexion->desconectar();
			return $this->retorno;
        }
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR LAS CONDICIONES DE LA VÍA (XML) DE UN ACCIDENTE DADO SU ID
    // =================================================================================================================
	
    public function consultar_datos_via_xml( $id_expediente ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smat_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Consultar las COndiciones de la Vía de un Accidente (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
        	$sql = "select v.id_expediente as id_expediente, 
					ge.nombre as nombre_geome_via, 
					o.nombre as nombre_orien_via, 
					ca.nombre as nombre_canal_via, 
					ma.nombre as nombre_mater_via, 
					es.nombre as nombre_estad_via, 
					re.nombre as nombre_resid_via, 
					am.nombre as nombre_ambie_via, 
					il.nombre as nombre_ilumi_via, 
					ob.nombre as nombre_obsta_via, 
					cc.nombre as nombre_condi_cli, 
					v.desc_auto_pre as desc_auto_pre 
				from ".$_SESSION['db_smat_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_datos_via as v, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_geome_via as ge, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_orien_via as o, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_canal_via as ca, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_mater_via as ma, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_estad_via as es, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_resid_via as re, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_ambie_via as am, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_ilumi_via as il, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_obsta_via as ob, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_condi_cli as cc 
				where v.id_expediente = $id_expediente and 
					v.id_geome_via = ge.id_geome_via and 
					v.id_orien_via = o.id_orien_via and 
					v.id_canal_via = ca.id_canal_via and 
					v.id_mater_via = ma.id_mater_via and 
					v.id_estad_via = es.id_estad_via and 
					v.id_resid_via = re.id_resid_via and 
					v.id_ambie_via = am.id_ambie_via and 
					v.id_ilumi_via = il.id_ilumi_via and 
					v.id_obsta_via = ob.id_obsta_via and 
					v.id_condi_cli = cc.id_condi_cli";	
			
			$this->respuesta = $conexion->consultar($sql);
			
			$temparray = $this->respuesta->buscar_fila();
			
            if(!temparray)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Consultar las Condiciones de la Vía de un Accidente: ".$conexion->getLastMessage();
            }
            else
            {
				// Si se encontro un Resultado con el ID dado
				if ( $temparray['id_expediente'] != "" ) 
				{
					$_xml="<datos_via>";
					$_xml.="<id_expediente>".$temparray['id_expediente']."</id_expediente>";
					$_xml.="<nombre_geome_via>".utf8_encode(strtoupper($temparray['nombre_geome_via']))."</nombre_geome_via>";
					$_xml.="<nombre_orien_via>".utf8_encode(strtoupper($temparray['nombre_orien_via']))."</nombre_orien_via>";
					$_xml.="<nombre_canal_via>".utf8_encode(strtoupper($temparray['nombre_canal_via']))."</nombre_canal_via>";
					$_xml.="<nombre_mater_via>".utf8_encode(strtoupper($temparray['nombre_mater_via']))."</nombre_mater_via>";
					$_xml.="<nombre_estad_via>".utf8_encode(strtoupper($temparray['nombre_estad_via']))."</nombre_estad_via>";
					$_xml.="<nombre_resid_via>".utf8_encode(strtoupper($temparray['nombre_resid_via']))."</nombre_resid_via>";
					$_xml.="<nombre_ambie_via>".utf8_encode(strtoupper($temparray['nombre_ambie_via']))."</nombre_ambie_via>";
					$_xml.="<nombre_ilumi_via>".utf8_encode(strtoupper($temparray['nombre_ilumi_via']))."</nombre_ilumi_via>";
					$_xml.="<nombre_obsta_via>".utf8_encode(strtoupper($temparray['nombre_obsta_via']))."</nombre_obsta_via>";
					$_xml.="<nombre_condi_cli>".utf8_encode(strtoupper($temparray['nombre_condi_cli']))."</nombre_condi_cli>";
					$_xml.="<desc_auto_pre>".utf8_encode(strtoupper($temparray['desc_auto_pre']))."</desc_auto_pre>";
					$_xml.="</datos_via>"; 
				}
				// Si no se encontro ningun Resultado con el ID dado
				else
				{
					$_xml="<datos_via>";
					$_xml.="VACIO";
					$_xml.="</datos_via>";
				}
				
				$this->retorno[0] = "S";
				$this->retorno[1] = $_xml;
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
	// ============================================================================================================
    // FUNCION - CONSULTAR LOS DATOS DE LAS CONDICIONES DE LA VÍA DEL ACCIDENTE
    // ============================================================================================================
    
    public function consultar_datos_via( $id_expediente ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smat_WS'] );
		
		$sql = "select v.id_expediente as id_expediente, 
					ge.nombre as nombre_geome_via, 
					o.nombre as nombre_orien_via, 
					ca.nombre as nombre_canal_via, 
					ma.nombre as nombre_mater_via, 
					es.nombre as nombre_estad_via, 
					re.nombre as nombre_resid_via, 
					am.nombre as nombre_ambie_via, 
					il.nombre as nombre_ilumi_via, 
					ob.nombre as nombre_obsta_via, 
					cc.nombre as nombre_condi_cli, 
					v.desc_auto_pre as desc_auto_pre 
				from ".$_SESSION['db_smat_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_datos_via as v, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_geome_via as ge, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_orien_via as o, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_canal_via as ca, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_mater_via as ma, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_estad_via as es, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_resid_via as re, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_ambie_via as am, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_ilumi_via as il, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_obsta_via as ob, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_condi_cli as cc 
				where v.id_expediente = $id_expediente and 
					v.id_geome_via = ge.id_geome_via and 
					v.id_orien_via = o.id_orien_via and 
					v.id_canal_via = ca.id_canal_via and 
					v.id_mater_via = ma.id_mater_via and 
					v.id_estad_via = es.id_estad_via and 
					v.id_resid_via = re.id_resid_via and 
					v.id_ambie_via = am.id_ambie_via and 
					v.id_ilumi_via = il.id_ilumi_via and 
					v.id_obsta_via = ob.id_obsta_via and 
					v.id_condi_cli = cc.id_condi_cli";
		
        $this->respuesta = $conexion->consultar($sql) 
			or die("No se pudo Consultar los Datos de la Condición de la Vía del Accidente: $id_expediente.");
		
        $temparray = $this->respuesta->buscar_fila();
			$lista_datos_via[0] = $temparray['id_expediente'];
			$lista_datos_via[1] = strtoupper($temparray['nombre_geome_via']);
			$lista_datos_via[2] = strtoupper($temparray['nombre_orien_via']);
			$lista_datos_via[3] = strtoupper($temparray['nombre_canal_via']);
			$lista_datos_via[4] = strtoupper($temparray['nombre_mater_via']);
			$lista_datos_via[5] = strtoupper($temparray['nombre_estad_via']);
			$lista_datos_via[6] = strtoupper($temparray['nombre_resid_via']);
			$lista_datos_via[7] = strtoupper($temparray['nombre_ambie_via']);
			$lista_datos_via[8] = strtoupper($temparray['nombre_ilumi_via']);
			$lista_datos_via[9] = strtoupper($temparray['nombre_obsta_via']);
			$lista_datos_via[10] = strtoupper($temparray['nombre_condi_cli']);
			$lista_datos_via[11] = $temparray['desc_auto_pre'];
        
        $conexion->desconectar();
        return $lista_datos_via;
    }
}
?>